#!/bin/bash
#
# Este script obtiene la lista de grupos a los que pertenece un usuario
# o si se le pasa -exc como segundo argumento, mostrara los que no pertenece
#
 
 # Comprobar argumentos...
 if [ "" = "$1" ]
 then
    echo "ERROR: Debes pasar el login [OPCIONAL: -exc (los que no pertenece)]"
    exit 2
 fi
 
 # Obtener la ruta absoluta del script
 LSOF=$(lsof 2>/dev/null -p $$ | grep -E "/"$(basename $0)"$")
 MY_PATH=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
 MY_ROOT=$(dirname $MY_PATH)

 # Cargar la configuracion del servidor Samba
 . $MY_ROOT/Config.app.conf

 # Para los temporales...
 tmpFile=/tmp/smbGrp_$$_$RANDOM

 # Obtener la lista de grupos (esto no he encontrado otra forma de hacerlo :( )
 net rpc -S $SMB_Server -U $SMB_Credentials  group list >$tmpFile.grupos  2>/dev/null

 export IFS=$'\n'
 for i in `cat $tmpFile.grupos `
 do
    # Obtener los miembros para este grupo
    net rpc -S $SMB_Server -U $SMB_Credentials group members "$i" | awk -F '\' '{printf("#%s#",$2)}' >$tmpFile.miembros 2>/dev/null
    if grep -q "#$1#" $tmpFile.miembros
    then
       # Pues sip, esta
       [ "-exc" != "$2" ] && echo $i
    else 
       [ "-exc" = "$2" ] && echo $i
    fi
 done
  
 rm $tmpFile.* -f 2>/dev/null
 
